package LK_Data_Structure;

public class DataS_Day_10 {
    /*二叉树的三种遍历*/
//    public List<Integer> preorderTraversal(TreeNode root) {
//        List<Integer> ret=new ArrayList<>();
//
//        TreeNode cur=root;
//        Deque<TreeNode> stack=new ArrayDeque<>();
//        while(cur!=null|| !stack.isEmpty()){
//            while(cur!=null){
//                stack.push(cur);
//                ret.add(cur.val);
//                cur=cur.left;
//            }
//
//            TreeNode top=stack.pop();
//
//            cur=top.right;
//        }
//        return ret;
//    }
//    public List<Integer> inorderTraversal(TreeNode root) {
//
//        List<Integer> ret=new ArrayList<>();
//
//        TreeNode cur=root;
//        Deque<TreeNode> stack=new ArrayDeque<>();
//        while(cur!=null|| !stack.isEmpty()){
//            while(cur!=null){
//                stack.push(cur);
//                cur=cur.left;
//            }
//
//            TreeNode top=stack.pop();
//            ret.add(top.val);
//            cur=top.right;
//        }
//        return ret;
//
//
//    }
//    public List<Integer> postorderTraversal(TreeNode root) {
//        List<Integer> ret=new ArrayList<>();
//
//        TreeNode cur=root;
//        TreeNode pre=null;
//
//        Deque<TreeNode> stack=new ArrayDeque<>();
//
//        while(cur!=null|| !stack.isEmpty()){
//
//            while(cur!=null){
//                stack.push(cur);
//                cur=cur.left;
//            }
//
//            TreeNode top=stack.peek();
//            if(top.right == null|| pre== top.right){
//                ret.add(stack.pop().val);
//                pre=top;
//            }else{
//                cur=top.right;
//            }
//        }
//        return ret;
//    }
}
